package com.pronosticnews.client.admin;

import com.google.gwt.place.shared.PlaceController;
import com.google.web.bindery.event.shared.EventBus;
import com.google.web.bindery.event.shared.SimpleEventBus;
import com.google.web.bindery.event.shared.testing.CountingEventBus;
import com.pronosticnews.client.admin.view.accueil.AccueilView;
import com.pronosticnews.client.admin.view.accueil.AccueilViewImpl;
import com.pronosticnews.client.admin.view.editChampionnat.EditChampionnatView;
import com.pronosticnews.client.admin.view.editChampionnat.EditChampionnatViewImpl;
import com.pronosticnews.client.admin.view.editClub.EditClubView;
import com.pronosticnews.client.admin.view.editClub.EditClubViewImpl;
import com.pronosticnews.client.admin.view.editJoueur.EditJoueurView;
import com.pronosticnews.client.admin.view.editJoueur.EditJoueurViewImpl;
import com.pronosticnews.client.admin.view.editMessage.EditMessageView;
import com.pronosticnews.client.admin.view.editMessage.EditMessageViewImpl;
import com.pronosticnews.client.admin.view.editPays.EditPaysView;
import com.pronosticnews.client.admin.view.editPays.EditPaysViewImpl;
import com.pronosticnews.client.admin.view.editSaison.EditSaisonView;
import com.pronosticnews.client.admin.view.editSaison.EditSaisonViewImpl;
import com.pronosticnews.client.admin.view.editSport.EditSportView;
import com.pronosticnews.client.admin.view.editSport.EditSportViewImpl;
import com.pronosticnews.client.admin.view.editStade.EditStadeView;
import com.pronosticnews.client.admin.view.editStade.EditStadeViewImpl;
import com.pronosticnews.client.admin.view.listChampionnat.ListChampionnatView;
import com.pronosticnews.client.admin.view.listChampionnat.ListChampionnatViewImpl;
import com.pronosticnews.client.admin.view.listClub.ListClubView;
import com.pronosticnews.client.admin.view.listClub.ListClubViewImpl;
import com.pronosticnews.client.admin.view.listJoueur.ListJoueurView;
import com.pronosticnews.client.admin.view.listJoueur.ListJoueurViewImpl;
import com.pronosticnews.client.admin.view.listJournees.ListJourneeViewImpl;
import com.pronosticnews.client.admin.view.listJournees.ListJourneesView;
import com.pronosticnews.client.admin.view.listMessage.ListMessageView;
import com.pronosticnews.client.admin.view.listMessage.ListMessageViewImpl;
import com.pronosticnews.client.admin.view.listPays.ListPaysView;
import com.pronosticnews.client.admin.view.listPays.ListPaysViewImpl;
import com.pronosticnews.client.admin.view.listSaison.ListSaisonView;
import com.pronosticnews.client.admin.view.listSaison.ListSaisonViewImpl;
import com.pronosticnews.client.admin.view.listSport.ListSportView;
import com.pronosticnews.client.admin.view.listSport.ListSportViewImpl;
import com.pronosticnews.client.admin.view.listStade.ListStadeView;
import com.pronosticnews.client.admin.view.listStade.ListStadeViewImpl;

public class ClientFactoryImpl implements ClientFactory {

	private static final EventBus eventBus = new CountingEventBus(
			new SimpleEventBus());

	private static final PlaceController placeController = new PlaceController(
			eventBus);

	private ListChampionnatView listChampionnatView;

	private ListPaysView listPaysView = new ListPaysViewImpl();

	private ListSportView listSportView;

	private  AccueilView accueilView;

	private  EditPaysView editPaysView;

	private  EditSportView editSportView;

	private  EditChampionnatView editChampionnatView;

	private  EditClubView editClubView;

	private  EditJoueurView editJoueurView;

	private  ListClubView listClubView;

	private  ListJoueurView listJoueurView;

	private  ListStadeView listStadeView;

	private  ListSaisonView listSaisonView;

	private  ListJourneesView listJourneeView;

	private  EditStadeView editStadeView;

	private  EditSaisonView editSaisonView;

	private  EditMessageView editMessageView;

	private  ListMessageView listMessageView;

	@Override
	public EventBus getEventBus() {
		return eventBus;
	}

	@Override
	public PlaceController getPlaceController() {
		return placeController;
	}

	@Override
	public ListPaysView getListPaysView() {
		if (listPaysView == null) {
			listPaysView = new ListPaysViewImpl();
		}
		return listPaysView;
	}

	@Override
	public ListSportView getListSportView() {
		if (listSportView == null) {
			listSportView = new ListSportViewImpl();
		}
		return listSportView;
	}

	@Override
	public AccueilView getAccueilView() {
		if (accueilView == null) {
			accueilView = new AccueilViewImpl();
		}
		return accueilView;
	}

	@Override
	public EditPaysView getEditPaysView() {
		if (editPaysView == null) {
			editPaysView = new EditPaysViewImpl();
		}
		return editPaysView;
	}

	@Override
	public EditSportView getEditSportView() {
		if (editSportView == null) {
			editSportView = new EditSportViewImpl();
		}
		return editSportView;
	}

	@Override
	public ListChampionnatView getListChampionnatView() {
		if (listChampionnatView == null) {
			listChampionnatView = new ListChampionnatViewImpl();
		}
		return listChampionnatView;
	}

	@Override
	public EditChampionnatView getEditChampionnatView() {
		if (editChampionnatView == null) {
			editChampionnatView = new EditChampionnatViewImpl();
		}
		return editChampionnatView;
	}

	@Override
	public ListClubView getListClubView() {
		if (listClubView == null) {
			listClubView = new ListClubViewImpl();
		}
		return listClubView;
	}

	@Override
	public ListJoueurView getListJoueurView() {
		if (listJoueurView == null) {
			listJoueurView = new ListJoueurViewImpl();
		}
		return listJoueurView;
	}

	@Override
	public EditClubView getEditClubView() {
		if (editClubView == null) {
			editClubView = new EditClubViewImpl();
		}
		return editClubView;
	}

	@Override
	public EditJoueurView getEditJoueurView() {
		if (editJoueurView == null) {
			editJoueurView = new EditJoueurViewImpl();
		}
		return editJoueurView;
	}

	@Override
	public EditStadeView getEditStadeView() {
		if (editStadeView == null) {
			editStadeView = new EditStadeViewImpl();
		}
		return editStadeView;
	}

	@Override
	public EditSaisonView getEditSaisonView() {
		if (editSaisonView == null) {
			editSaisonView = new EditSaisonViewImpl();
		}
		return editSaisonView;
	}

	@Override
	public ListStadeView getListStadeView() {
		if (listStadeView == null) {
			listStadeView = new ListStadeViewImpl();
		}
		return listStadeView;
	}

	@Override
	public ListSaisonView getListSaisonView() {
		if (listSaisonView == null) {
			listSaisonView = new ListSaisonViewImpl();
		}
		return listSaisonView;
	}

	@Override
	public ListJourneesView getListJourneeView() {
		if (listJourneeView == null) {
			listJourneeView = new ListJourneeViewImpl();
		}
		return listJourneeView;
	}

	@Override
	public ListMessageView getListMessageView() {
		if (listMessageView == null) {
			listMessageView = new ListMessageViewImpl();
		}
		return listMessageView;
	}

	@Override
	public EditMessageView getEditMessageView() {
		if (editMessageView == null) {
			editMessageView = new EditMessageViewImpl();
		}
		return editMessageView;
	}
}
